// 通过合理的安排入栈和出栈的时机，使栈的出栈顺序符合二叉树的谦虚遍历规则
// 将根结点入栈
// 取出栈顶结点，将结点值 push 进结果数组（入栈）
// 若栈顶结点有 右子结点， 则把右结点入栈
// 若栈顶结点有 左子结点，
const preorderTraversal = function (root) {
    const res = []

    const stack = []
    stack.push(root)

    while (stack.length) {
        const cur = stack.pop()
        res.push(cur.val)
        if (cur.right) {
            stack.push(cur.right)
        }
        if (cur.left) {
            stack.push(cur.left)
        }
    }
    return res
}
preorderTraversal([2,6,4,5])